빌드·배포·인프라 용어
CI/CD, 컨테이너, 쿠버네티스, 설정 파일 등 배포·운영 환경 용어
- 용어 22개
CI (Continuous Integration, 지속적 통합)
코드 변경을 자주 공유 저장소에 합치고, 합칠 때마다 자동으로 빌드와 테스트를 돌려 문제를 일찍 찾는 방식.
CD (Continuous Delivery / Continuous Deployment)
CI 이후 단계를 자동화하는 방식. 두 가지 뜻이 있다.
- Continuous Delivery(지속적 제공): 언제든 배포할 수 있는 상태를 자동으로 만들어 두고, 운영 배포는 사람이 승인한다.
- Continuous Deployment(지속적 배포): 테스트를 통과하면 운영 배포까지 자동으로 진행한다.
- “CD”만 적혀 있으면 문맥이나 팀 약속을 확인해야 한다.
- 학습 노트: Git Action (CD) · sk m&s (배포-CICD 정리)
pipeline (파이프라인)
빌드 → 테스트 → 배포 같은 단계를 순서대로 자동 실행하는 흐름.
build / artifact (빌드 / 산출물)
소스를 실행 가능한 형태로 만드는 과정 / 그 결과물(바이너리, jar, 이미지 등).
- 학습 노트: Binary 란 · 명령어 Makefile
deploy / release (배포)
만든 결과물을 실제 환경(서버)에 올려 사용 가능하게 하는 것.
- 개발(dev) → 검증(staging) → 운영(prod)처럼 환경을 나누어 올리는 경우가 많다.
- 학습 노트: 서버 배포 (+Docker) · sk m&s (배포-CICD 정리)
VM (Virtual Machine)
하이퍼바이저로 물리 서버 위에 만든 가상 컴퓨터.
- 각 VM이 자기 OS(게스트 OS)를 따로 가진다.
- 학습 노트: Ubuntu & redHat (OpenStack) · devstack (OpenStack)
vm image
VM을 만들 때 쓰는 디스크 템플릿(스냅샷).
- OS와 설치된 소프트웨어가 통째로 들어 있다. 형식 예) qcow2, VMDK, AWS의 AMI.
- docker image는 커널을 포함하지 않는 앱 단위 패키지라는 점이 다르다.
- 학습 노트: Ubuntu & redHat (OpenStack)
container (컨테이너)
앱과 필요한 라이브러리를 격리해서 실행하는 환경. 호스트 OS의 커널을 공유한다.
- VM보다 가볍고 빨리 뜬다.
- 학습 노트: 서버 배포 (+Docker) · 쿠버네티스 기본 개념 - Pod·Node·Cluster·Deployment
docker image (컨테이너 이미지)
컨테이너를 만들기 위한 읽기 전용 템플릿. 앱, 의존성, 설정이 레이어로 묶여 있다.
- 이미지를 실행하면 container가 된다. 클래스(이미지)와 객체(컨테이너) 관계와 비슷하다.
- 학습 노트: 서버 배포 (+Docker) · Docker + MariaDB 로컬 개발 환경 정리
container registry (이미지 저장소)
컨테이너 이미지를 올려 두고 내려받는 저장소.
- 예) Docker Hub, AWS ECR.
- 학습 노트: 서버 배포 (+Docker)
Kubernetes (k8s)
여러 서버에 걸쳐 컨테이너를 배포하고, 늘리고 줄이고, 장애 시 복구하는 것을 자동으로 관리하는 오케스트레이션 도구.
pod (파드)
쿠버네티스에서 배포와 스케줄링의 최소 단위. 하나 이상의 컨테이너를 묶은 것.
- 같은 pod 안의 컨테이너는 같은 IP와 저장소를 공유한다.
- pod는 “이미지”가 아니라 이미지로부터 만든 컨테이너를 담아 실행하는 단위다.
- 학습 노트: 쿠버네티스 기본 개념 - Pod·Node·Cluster·Deployment
node (노드)
클러스터나 네트워크를 이루는 개별 머신(물리 서버 또는 VM) 한 대.
- k8s에서는 pod가 실제로 실행되는 서버를 뜻한다. 문맥에 따라 네트워크상의 개별 장비나 기능 단위를 부르기도 한다.
- 학습 노트: 쿠버네티스 기본 개념 - Pod·Node·Cluster·Deployment
cluster (클러스터)
여러 node를 묶어 하나의 시스템처럼 운영하는 단위.
yaml
들여쓰기로 구조를 표현하는, 사람이 읽기 쉬운 설정·데이터 파일 형식(.yaml, .yml).
- 쿠버네티스 매니페스트, docker-compose, CI 설정, OpenAPI 명세 등에 널리 쓰인다.
- 들여쓰기는 공백만 쓰고 탭은 쓰면 안 된다.
- 학습 노트: Grafana Alert Slack 연동 설정 가이드 · API·규격 데이터 모델을 C 구조체로 설계하는 공식 — JSON·YAML을 정적 메모리로 매핑하기 · 쿠버네티스 기본 개념 - Pod·Node·Cluster·Deployment
JSON
{ “키”: 값 } 형태의 텍스트 데이터 교환 형식.
- API 요청/응답 본문에 가장 흔히 쓰인다.
- 학습 노트: RequestPart (파일 + json 전송)
IaC (Infrastructure as Code)
서버, 네트워크 같은 인프라를 코드(파일)로 정의해 버전 관리하고 자동으로 만드는 방식.
- 예) Terraform, Ansible.
- 학습 노트: Ansible 정리 (실무·면접 교정본)
provisioning (프로비저닝)
필요한 것을 사전에 설정하거나 할당해 두는 것.
- 인프라: 서버, 저장소 같은 자원을 미리 확보하고 설정하는 것.
- 통신 장비: 운영자가 허용 목록, 가입자, 정책 같은 값을 미리 등록해 두는 것. 이렇게 미리 넣어 둔 값을 provisioning 값이라고도 부른다.
- 핵심은 “실행 중에 들어오는 값”이 아니라 “미리 넣어 둔 기준 값”이라는 점이다.
- 학습 노트: Ansible 정리 (실무·면접 교정본)
scale up / scale down (수직 확장 / 축소)
한 대의 서버 사양(CPU, 메모리 등)을 올리거나(up) 낮추는(down) 것.
- 가장 단순하지만 한 대의 성능에는 한계가 있고, 사양을 바꿀 때 재시작이 필요할 수 있다.
- 학습 노트: VPC - NAT - RDS - LB - AS 정리 (실무 기준
scale out / scale in (수평 확장 / 축소)
서버(인스턴스) 대수를 늘려서(out) 부하를 나누거나, 늘렸던 대수를 다시 줄이는(in) 것.
- 요청이 몰릴 때 늘리고 한가해지면 줄이는 것을 자동으로 하는 기능이 오토스케일링(autoscaling)이다.
- 서버가 여러 대로 늘어나므로 load balancer가 필요하고, 서버가 상태를 갖지 않는(stateless) 구조일수록 쉽다.
- traffic spike 대응의 기본 수단이다(네트워크·통신 노트 참고).
- 학습 노트: VPC - NAT - RDS - LB - AS 정리 (실무 기준 · 쿠버네티스 기본 개념 - Pod·Node·Cluster·Deployment
HA / failover (고가용성 / 장애 전환)
장애가 나도 서비스가 계속되도록 이중화하는 것 / 장애 시 대기 장비로 자동 전환하는 것.
- 학습 노트: 서버 장애 대응 방안
load balancer (로드 밸런서)
들어온 요청을 여러 서버에 고르게 나누어 보내는 장치나 소프트웨어.
- 분산 방식과 L4/L7 구분은 네트워크·통신 노트의 load balancing 항목 참고.
- 학습 노트: 로드밸런스